Preface

This manual describes the STONE[*]Object Management System SOS, Release .

The major goal of STONE is to support integration of tools within a software engineering environment. One way of achieving this goal is to allow tools to share data structures. In the simplest form, one tool uses the data that are produced by some other tools. Another form of integration happens by establishing relationships between data of different tools. In both cases, data have to be accessible from ``outside a tool'' and for that, the structure of the data must be explicit. For STONE, the data of interest may be on the level of documents (plans, programs, etc.) as well as on the level below. For instance, a parse tree which is generated by a compiler may be a useful input for a tool doing further program analysis.

The way in which STONE makes data structures explicit and data accessible for other tools is by making data persistent as well as their types. The real-world objects that are to be stored and manipulated by SOS may be of rather small granularity but still highly structured and interwoven. To handle such objects, SOS implements a persistent storage for objects according to the object-oriented paradigm, i.e. objects are instances of classes which define slots and methods, and which can be composed by (multiple) inheritance.

A major design criterion for SOS was the logical independence from the programming language(s) that host the system. The underlying data model together with appropriate restrictions allows implementations in different host languages.

The authors would like to thank Thomas Raupp, Richard Längle, Karol Abramowicz, Dieter Neumann, and Jochen Alt all from FZI Karlsruhe, who participated in the design and implementation of SOS. Thanks are also due to our project partners, especially to Hans-Ulrich Kobialka from GMD Birlinghoven, from which we received valuable comments on earlier system versions.